Multiple programmable hardware-based on-chip password

ABSTRACT

A method, system, and apparatus for setting an on-chip password is provided. In an embodiment, a method for programming an on-chip password includes determining a desired logic state for a field-effect transistor according to the on-chip password. The desired logic state is one of a first logic state and a second logic state. The method also includes subjecting one of a source and a drain of the field-effect transistor to hot-carrier stress according to the desired logic state to produce one of a symmetric state of the field-effect transistor and an asymmetric state of the field-effect transistor. The symmetric state corresponds to one of the first and second logic states. The asymmetric state corresponds to the other one of the first and second logic states.

BACKGROUND

The disclosure relates generally to semiconductor chips and morespecifically to methods, systems, and structured for forming on-chippasswords.

On-chip password or chip identification has become increasinglyimportant, particularly with the proliferation of Internet of things(IoT). The application of on-chip password can be used for accessauthentication and/or to prevent counterfeits. On-chip password can besoftware based or hardware-based. However, a software-based password issusceptible to cyberattack. A hardware-based password is typicallyachieved by using eFuse (electrical fuse) or by using embedded flashmemory (eFlash). However, both methods have drawbacks. Although eFuse istypically CMOS compatible (for old CMOS nodes), one problem with eFuseis that it can only be used once. In other words, one cannot flexiblychange the password. Thus, for the state-of-the-art CMOS, which usehigh-k/metal gates, the conventional eFuse can no longer be obtainedwithout additional process steps. In contrast to eFuse, eFlash can bere-programmed multiple times. However, the eFlash process is notcompatible with the conventional CMOS.

Therefore, it would be desirable to have a method and apparatus thattake into account at least some of the issues discussed above, as wellas other possible issues. For example, it would be desirable to have amethod and apparatus that overcome a technical problem with forming anon-chip password that can be fabricated along with CMOS and that can beprogrammed multiple times.

SUMMARY

According to one embodiment of the present invention, a method forprogramming an on-chip password includes determining a desired logicstate for a field-effect transistor according to the on-chip password.The desired logic state is one of a first logic state and a second logicstate. The method also includes subjecting one of a source and a drainof the field-effect transistor to hot-carrier stress according to thedesired logic state to produce one of a symmetric state of thefield-effect transistor and an asymmetric state of the field-effecttransistor. The symmetric state corresponds to one of the first andsecond logic states. The asymmetric state corresponds to the other oneof the first and second logic states.

According to another embodiment of the present invention, a computer forprogramming an on-chip password includes a processor and anon-transitory computer readable storage medium storing program codewhich, when executed by the processor, performs a computer-implementedmethod of using the computer to program an on-chip password. The programcode includes program code for determining a desired logic state for afield-effect transistor according to the on-chip password, the desiredlogic state being one of a first logic state and a second logic state.The program code also includes program code for subjecting one of asource and a drain of the field-effect transistor to hot-carrier stressaccording to the desired logic state to produce one of a symmetric stateof the field-effect transistor and an asymmetric state of thefield-effect transistor. The symmetric state corresponds to one of thefirst and second logic states. The asymmetric state corresponds to theother one of the first and second logic states.

According to another embodiment of the present invention, asemiconductor device for on-chip password programming includes afield-effect transistor. The device also includes a hot-carrier stressapplication unit coupled to the field-effect transistor and configuredto subject one of a source and a drain of the field-effect transistor tohot-carrier stress according to the desired logic state to produce oneof a symmetric state of the field-effect transistor and an asymmetricstate of the field-effect transistor. The symmetric state corresponds toone of the first and second logic states. The asymmetric statecorresponds to the other one of the first and second logic states.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a metal-oxide semiconductor field-effecttransistor (MOSFET) before hot-carrier stress in accordance with anillustrative embodiment;

FIG. 2 is a diagram of MOSFET after hot-carrier stress applied to thedrain in accordance with an illustrative embodiment;

FIG. 3 is a diagram illustrating a MOSFET before and after hot-carrierstress in accordance with an illustrative embodiment;

FIG. 4 is a diagram showing the logic state corresponding to variousstates of the MOSFET in accordance with an illustrative embodiment;

FIG. 5 is a diagram showing the state of a MOSFET before and afterapplication of hot-carrier stress for changing the logic of the MOSFETin accordance with an illustrative embodiment;

FIG. 6 is a diagram showing the state of a MOSFET before and afterapplication of hot-carrier stress for changing the logic of the MOSFETin accordance with an illustrative embodiment;

FIG. 7 is a diagram showing saturation current as a function of voltage(V_(ds)) between the drain and source for both unstressed and stressedMOSFETs in accordance with an illustrative embodiment;

FIG. 8 is a diagram of a bit cell in accordance with an illustrativeembodiment;

FIG. 9 is a diagram of an array of bit cells in accordance with anillustrative embodiment;

FIG. 10 is a diagram of an on-chip password system in accordance with anillustrative embodiment;

FIG. 11 is a flowchart of an exemplary method for setting an on-chippassword in accordance with an illustrative embodiment;

FIG. 12 is a flowchart of an exemplary method for reading the logicstate of a FET in accordance with an illustrative embodiment; and

FIG. 13 is a block diagram of a data processing system in accordancewith an illustrative embodiment.

DETAILED DESCRIPTION

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include acomputer-readable storage medium (or media) having computer-readableprogram instructions thereon for causing a processor to carry outaspects of the present invention.

The computer-readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer-readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer-readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer-readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer-readable program instructions described herein can bedownloaded to respective computing/processing devices from acomputer-readable storage medium or to an external computer or externalstorage device via a network, for example, the Internet, a local areanetwork, a wide area network and/or a wireless network. The network maycomprise copper transmission cables, optical transmission fibers,wireless transmission, routers, firewalls, switches, gateway computersand/or edge servers. A network adapter card or network interface in eachcomputing/processing device receives computer-readable programinstructions from the network and forwards the computer-readable programinstructions for storage in a computer-readable storage medium withinthe respective computing/processing device.

Computer-readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. Thecomputer-readable program instructions may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider). In some embodiments, electronic circuitry including, forexample, programmable logic circuitry, field-programmable gate arrays(FPGA), or programmable logic arrays (PLA) may execute thecomputer-readable program instructions by utilizing state information ofthe computer-readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer-readable program instructions.

These computer program instructions may be provided to a processor of ageneral-purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer program instructions may also bestored in a computer-readable medium that can direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions stored in thecomputer-readable medium produce an article of manufacture includinginstructions which implement the function/act specified in the flowchartand/or block diagram block or blocks.

The computer-readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

As used herein, “a number of” when used with reference items, means oneor more items. For example, “a number of different types of networks” isone or more different types of networks.

Further, the phrase “at least one of,” when used with a list of items,means different combinations of one or more of the listed items may beused, and only one of each item in the list may be needed. In otherwords, “at least one of” means any combination of items and number ofitems may be used from the list, but not all of the items in the listare required. The item may be a particular object, a thing, or acategory.

For example, without limitation, “at least one of item A, item B, oritem C” may include item A, item A and item B, or item B. This examplealso may include item A, item B, and item C or item B and item C. Ofcourse, any combinations of these items may be present. In someillustrative examples, “at least one of” may be, for example, withoutlimitation, two of item A; one of item B; and ten of item C; four ofitem B and seven of item C; or other suitable combinations.

The illustrative embodiments recognize and take into account one or moreconsiderations. For example, the illustrative embodiments recognize andtake into account that providing an on-chip password that isreprogrammable multiple times is difficult. The illustrative embodimentsrecognize and take into account that one solution can use hot-carrierstress to introduce defects into the source and/or drain of a MOSFET toalter the symmetry of the MOSFET, thereby storing a logic state that canbe measured by measuring the forward (i.e., normal) and reverse currentsacross the drain and source. In order to turn a symmetric MOSFET into anasymmetric MOSFET, hot-carrier stress is applied to one of the sourceand the drain to introduce defects. In order to turn an asymmetricMOSFET into a symmetric MOSFET, hot-carrier stress is applied to theother of the source or the drain from that to which hot-carrier stresswas previously applied in order to introduce defects into the otherside, such that both the source and the drain side contain substantiallythe same amount of defects. In order to turn the symmetric MOSFET backinto an asymmetric state, hot-carrier stress is applied again to the oneof the source and the drain to introduce additional defects that causethe MOSFET to once again be in an asymmetric state. The repeatedapplication of hot-carrier stress may be performed to repeatedly changethe MOSFET from an asymmetric state to a symmetric state or from asymmetric state to an asymmetric state.

Thus, the illustrative embodiments provide a method, apparatus, system,and computer program product for repeatedly programming an on-chippassword. Thus, in an exemplary embodiment, a method for programming anon-chip password, includes determining a desired logic state for afield-effect transistor according to the on-chip password, the desiredlogic state being one of a first logic state and a second logic state.Next, one of a source and a drain of the field-effect transistor issubjected to hot-carrier stress according to the desired logic state toproduce one of a symmetric state of the field-effect transistor and anasymmetric state of the field-effect transistor. The symmetric statecorresponds to one of the first and second logic states. The asymmetricstate corresponds to the other one of the first and second logic states.

Disclosed herein are methods, systems, and structures for forming anon-chip array circuit that can be used as an on-chip password. Thedisclosed array can be fabricated along with CMOS and can be programmedmultiple times. In an embodiment, each password bit is achieved by astandard MOS transistor. In an embodiment, programming of each bit isachieved by hot-carrier stress.

A fresh MOSFET is symmetric. This means that the source and drain areinterchangeable. The channel current remains the same for a fixed gatebias and a fixed source/drain bias regardless of which source/drainterminal is used as a source and which source/drain terminal is used asa drain. However, when a MOSFET is subject to hot-carrier stress (HCS),defects, such as interface traps, are generated and localized on thedrain side. As a result, a MOSFET, after the first application of HCSbecomes asymmetric. The channel current depends on which terminal isused as the source and which terminal is used as the drain duringmeasurement. In an embodiment, the channel current is measured twice. Inthe first measurement, the terminal assignment during measurement is thesame as that during HCS. In other words, the source in the HCS remainsthe source during the first measurement and the drain during HCS remainsthe drain during the first measurement. In the second measurement, thesource and drain terminals are swapped. Thus, in the second measurement,the source in the HCS becomes the drain in the second measurement andthe drain in the HCS becomes the source in the second measurement. Thechannel current in the second measurement is lower than the firstmeasurement due to the asymmetric distribution of the defects generatedby the HCS.

To set up a password for the first time, if a bit is logic “1”, thecorresponding MOSFET is subjected to HCS. If a bit is logic “0”, thenthe corresponding MOSFET is not subjected to HCS. With an array ofMOSFETs, a series of “1”s and “0”s are generated.

To change the password, each bit is first measured. In an embodiment, ifthe bit needs to be changed from “0” to “1”, the corresponding MOSFET issubjected to HCS. If the bit needs to be changed from “1” to “0”, theMOSFET is subjected to HCS with the original source as the drain and theoriginal drain as the source during the new HCS, so that substantiallythe same amount of defects (traps) is generated on the original sourceside as were in the original, produced on the original drain side. Afterthe second HCS, both the source and the drain sides have defects suchthat the MOSFET becomes symmetric.

To read the code, each MOSFET is measured twice. During the secondmeasurement, the source and drain are swapped. If the channel current iscomparable between these two measurements, then that MOSFET is symmetricand this indicates a logic “0” state. If the channel current isdifferent between these two measurements, then the MOSFET is asymmetricand indicates a logic “1” state.

The process described herein can be repeated by programming each MOSFETto symmetric or asymmetric as appropriate to achieve a new passwordchange. This process described herein can be repeated as often as thepassword is changed.

Although described in terms of a logic “1” state represented by a MOSFETin an asymmetric state and a logic “0” state represented by a MOSFET ina symmetric state, in other embodiments, the logic “1” state may berepresented by a MOSFET in a symmetric state and the logic “0” berepresented by a MOSFET in an asymmetric state.

With reference now to the figures and, in particular, with reference toFIG. 1, a diagram of a metal-oxide semiconductor field-effect transistor(MOSFET) before hot-carrier stress is depicted in accordance with anillustrative embodiment. MOSFET 100 includes a gate 102, a source 104, achannel 106, a drain 108, and an insulator 110. The source 104 and drain108 may be referred to as terminals and the terminals may be switchedfor purposes of measuring the drive current such that the drive currentis measured not only in a normal mode (normal current measurement) fromthe source 102 to the drain 108, but also a drive current may bemeasured in a reverse mode (reverse current measurement) from the drain108 to the source 104. Normal and reverse mode current measurements areexplained in greater detail below.

FIG. 2 is a diagram of MOSFET 100 after hot-carrier stress applied tothe drain 108 of the MOSFET 100 in accordance with an illustrativeembodiment. For hot-carrier stress, in order to create defects on drain108 side of a MOSFET 100, the following voltage condition is applied tothe MOSFET 100. Source terminal 104 is grounded (0 volt), a high voltageis applied to the drain terminal 108, and a voltage greater than thethreshold voltage of the MOSFET 100 is applied to the gate terminal 102to turn on the MOSFET 100. For n-type MOSFET, high energy electrons flowfrom source through the channel 106 to drain 108. They are acceleratedby the electrical field between source 104 and drain 108 and gainkinetic energy. When they arrive at drain 108 side, those high energyelectrons (often referred to as “hot electrons”) creates defects nearthe drain 108 region. Similarly, for p-type MOSFET, hot carriers are hotholes instead of hot electrons. Defects can be interfaces traps such asdangling bonds between the gate dielectric and the channel 106 of theMOSFET 100. Defects can also be hot carriers injected into the gatedielectric, or both. The effect of those defects is that they change ofcharacteristics of the MOSFET 100. For example, before hot carrierstress a MOSFET 100 is typically symmetric (meaning source 104 and drain108 terminals are structurally identical). After hot carrier stress, theMOSFET 100 becomes asymmetric due to localized defect generation (drainside or source side depending on bias condition). The stress voltagesdepend on the MOSFET dimensions such as gate length, gate dielectricthickness, etc. For example, for a MOSFET with a gate length of 25 nm,and an equivalent gate dielectric thickness of about 1.5 nanometers(nm), a gate voltage can be about 1 volt (V), and 2.5V can be applied todrain 108 while source is grounded (0V) to create defects on drain 108side. Conversely, for the same MOSFET 100, defects can be generated onsource 104 side by grounding drain 108 and applying 2.5V on source.

As shown, defects 112 are present between the gate 102, channel 106, anddrain 108 of the MOSFET 100. The defects 112 are represented by “X”s inthe Figures. In the depicted example, the defects 112 are on the drain108 side of the MOSFET 100. However, in other embodiments, thehot-carrier stress could be applied to the source 104 side and, in thatcase, the defects 112 would be on the source 104 side of the MOSFET 100.If it is desired to create defects on the source 104 side, the drain 108side is grounded, applying a high voltage on source side, and a gatevoltage is greater than the threshold voltage of the MOSFET 100 to turnit on (basically flipping the source/drain terminals 104, 108). Thedefects 112 cause an asymmetry in the MOSFET 100 that is measurable. Thecurrent from the source 104 to the drain 108 is compared to the currentfrom the drain 108 to the source 104. When there is an asymmetry in theMOSFET 100 due to the defects 112, the current from the source 104 tothe drain 108 is different from that of the current from the drain 108to the source 104. If there is no asymmetry in the MOSFET 100, then thedifference in the current in the two directions will be zero. It shouldbe noted that in an embodiment, the absolute value of the drive currentin either direction (e.g., source to drain or drain to source) is notimportant. The bit information (logic “1” or “0”) is determined by thecurrent difference between the two measurements (in normal mode and inreverse mode). The bit information does not depend on the absolute valueof the drive current. Alternatively, in an embodiment, instead ofmeasuring the current, other device characteristics, such as, forexample, threshold voltages, subthreshold slopes, transconductances,resistances are measured in normal mode and in reverse mode to determinethe bit information (logic “1” or “0”). A measurement of a devicecharacteristic in normal mode for each device characteristic is a modein which MOSFET is biased in a normal fashion such that the source anddrain operate as a source and drain respectively. A measurement of adevice characteristic in a reverse mode is a measurement made in a modein which the MOSFET is biased in a reverse fashion such that the sourceacts as a drain and the drain acts as a source.

FIG. 3 is a diagram illustrating a MOSFET before and after hot-carrierstress and with normal and reverse current measurements in accordancewith an illustrative embodiment. MOSFET 302 is a MOSFET beforeapplication of hot-carrier stress. As shown, MOSFET 302 is symmetricwithout defects on either the source 104 or drain 108 sides. MOSFET 304is a MOSFET after application of hot-carrier stress to the drain 108side of the MOSFET 304 thereby introducing defects 112 on the drain 108side of the MOSFET 304. MOSFET 306 represents a MOSFET under normalcurrent measurement measured from the source 314 to the drain 318.MOSFET 308 represents a MOSFET under a reverse current measurement fromthe drain 318 to the source 314.

FIG. 4 is a diagram showing the logic state corresponding to variousstates of the MOSFET 100. In the logic state “0”, the MOSFET 100 issymmetrical such that the normal measurement of the current 400 equalingnormal current measurement 402 from the source 104 to the drain 108 isthe same as the reverse current measurement 404 where the source 104 anddrain 108 have been swapped such that the drain 108 is now the sourceand the source 104 is now the drain. In the logic state “1”, thecurrents from the normal measurement 402 and from the reversemeasurement 404 are different.

FIG. 5 is a diagram showing the state of a MOSFET before and afterapplication of hot-carrier stress for changing the logic of the MOSFETin accordance with an illustrative embodiment. In an embodiment, inorder to change a MOSFET from a logic state “1” to a logic state “0”,hot-carrier stress is applied to the one of the source 104, such thatthe MOSFET 520 can be returned to a symmetric state by having an equalamount of defects 112 on both the source 104 and the drain 108 side ofthe MOSFET 520. In the depicted example, hot-carrier stress is appliedto the source 104 to create defects 112 on the source side of the MOSFET520. The MOSFET 520 before the change 502 is shown on the upper left ofthe diagram and the MOSFET 520 after change 504 is shown on the upperright of the diagram. By creating defects on the source 104 side of theMOSFET 520, the MOSFET 520 is changed from an asymmetric state to asymmetric state, thereby changing the logic from “1” to “0”.

In an embodiment, in order to change a MOSFET from a logic state “0” toa logic state “1”, the MOSFET 530 is subjected to a hot-carrier stresson the drain 108 in order to create an asymmetry in the MOSFET 530 andthereby result in the MOSFET 530 changing from a logic “0” to a logic“1”. In the depicted example, hot-carrier stress is applied to the drain108 of the MOSFET 530 to cause the MOSFET to become asymmetric withrespect to defects 112 and thereby change the MOSFET 530 from a logic“0” to a logic “1” state. The MOSFET 530 in logic state “0” before thechange 502 is shown on the lower left of the Figure and the MOSFET 530in logic state “1” after change 504 by creating defects on the drain 108side of the MOSFET 530 is shown on the lower right of the Figure.

FIG. 6 is a diagram showing the state of a MOSFET before and afterapplication of hot-carrier stress for changing the logic of the MOSFETin accordance with an illustrative embodiment. The top part of FIG. 6showing the procedure for changing a MOSFET 520 from a logic “1” tologic “0” is the same as shown in FIG. 5. In the example, the MOSFET 630has already been subjected to hot-carrier stress on both source 104 anddrain 108, such that both the source 104 and the drain 108 containdefects 112. In order to change the MOSFET 630 from a logic state “0” toa logic state “1”, the drain 108 is subjected to hot-carrier stressagain in order to introduce additional defects 114 on the drain 108 sideof the MOSFET 630, such that the MOSFET 630 is once again in anasymmetric state due to the presence of additional defects 114 on thedrain side 108, than are present on the source 104 side. The MOSFET 630before the change 502 is shown on the lower left of the Figure and theMOSFET 630 after the change 504 is shown on the lower right of theFigure.

Thus, the MOSFET 630 may be reprogrammed multiple times by applyingadditional hot-carrier stress to the appropriate one of the source 112and the drain 108 in order to introduce additional defects 112, 114 asneeded to make the MOSFET 630 either symmetric or asymmetric as neededto change the logic from “0” or “1” to “1” or “0”.

FIG. 7 is a diagram 700 showing saturation current as a function ofvoltage (V_(ds)) between the drain and source for both unstressed andstressed MOSFETs. Graph 702 is a plot of the saturation current versusV_(ds) for an unstressed MOSFET. An unstressed MOSFET is a MOSFET thathas not been subjected to hot-carrier stress (or one that has beensubjected to multiple hot-carrier stresses such that the amount ofdefects on the drain and the source are substantially the same). Thesaturation current for the unstressed MOSFET is the same for the normalcurrent (i.e., current from source to drain) as for the reverse current(i.e., current from the drain to the source). Graph 704 shows the normalsaturation current (i.e., current from the source to the drain) versusV_(ds) for a stressed MOSFET (i.e., a MOSFET in which an asymmetry indefects on the source and drain of the MOSFET exists as a result ofselectively applying hot-carrier stress to only one of the source andthe drain or applied more to one of the source and the drain). Graph 706shows the reverse current (i.e., current from the drain to the source)for a stressed MOSFET. As shown, the graph 704 of the saturation currentfor the stressed normal measurement of current for the MOSFET comparedto the graph 706 of the saturation current for the stressed reversemeasurement of the current for the MOSFET shows that the current is notthe same for each V_(ds) value. In an embodiment, this difference incurrent is measured and used to determine the logic state of the MOSFET.When the normal and reverse current are the same, the MOSFET isconsidered to be in a first logic state (e.g., a logic state “0”) andwhen the normal and the reverse current are not the same, the MOSFET isconsidered to be in a second logic state (e.g., a logic state “1”).

FIG. 8 is a diagram of a bit cell 800 in accordance with an illustrativeembodiment. Bit cell 800 includes a word line (WL) 802, a source line(SL) 804, and a bit line (BL) 806. The bit cell 800 also includes aMOSFET that includes a gate 808 connected to the WL 802, a source 810connected to the SL 804, and a drain 812 connected to the BL 806. TheMOSFET including the gate 808, source 810, and drain 812 may beimplemented as any of MOSFETs 100, 302, 304, 306, 308, 520, 530, 630.The MOSFET in bit cell 800 may be subjected to hot-carrier stress asappropriate to change a logic state of the MOSFET.

FIG. 9 is a diagram of an array 900 of bit cells 902. The Array 900includes a plurality of bit cells 902, source lines SL1, SL2, . . . SLm,a plurality of bit lines BL1, BL2, . . . BLm, and word lines WL1, WL2, .. . WLn. Each bit cell 902 may be implemented as any of MOSFETs 100,302, 304, 306, 308, 520, 530, 630. The MOSFET in each of bit cells 902may be subjected to hot-carrier stress as appropriate to change a logicstate of the MOSFET. Each MOSFET in the bit cells 902 is individuallyand independently programmable such that each bit cell 902 may be in alogic state “0” or “1” independent of the logic state of any other bitcell 902.

FIG. 10 is a diagram of an on-chip password system 1000 in accordancewith an illustrative embodiment. On-chip password system 1000 includes auser input module 1002, a password reader and setter 1004, a currentmeasurer 1006, an array of MOSFETs 1008, a hot-carrier stress source1010, a voltage source 1012, an authenticator 1014, and data 1016. Data1016 stores data. The user input module 1002 receives user passwordinput data for setting or changing the password. The user input module1002 also receives user input in the form of a password that, ifcorrect, allows the user to access data 1016 protected by the on-chippassword.

The password reader and setter 1004 reads and sets the password on thearray of MOSFETs 1008. The current measurer 1006 measures the normalcurrent and the reverse current across each of the array of MOSFETs1008. Current across the MOSFETs 1008 may be driven by applying avoltage cross the source and drain of each MOSFET using the voltagesource 1012.

The hot-carrier stress source 1010 applies hot-carrier stress to one ofthe drain or source of one of the MOSFETs 1008 in order to introducedefects into the source or drain side of one of the MOSFETs 1008. Thedefects, if introduced onto only one of the drain and source sides,cause the current measurement in the normal and reverse directions to bedifferent. If defects are introduced into both the source and drainsides of one of the MOSFETs 1008, then the normal and reverse currentsmeasured on that MOSFET 1008 will be the same. The logic state of eachof the MOSFETs 1008 is determined by whether both the drain and sourcecontain an equal amount of defects (or equal lack of defects) or whetherone of the drain or source contains more defects than the other.

The password reader and setter 1004 works in conjunction with thecurrent measurer 1006 to determine the logic state of each of theMOSFETs in the array of MOSFETs 1008. The sequence of logic states ofthe MOSFETs in the array of MOSFETs 1008 is the on-chip password. Thison-chip password can be adjusted by the password reader and setter 1004.The password reader and setter 1004 also works in conjunction with thehot-carrier stress source in order to program the password into thearray of MOSFETs 1008.

The authenticator 1014 receives a user input password from user inputmodule 1002 and compares the user input to the password stored in thearray of MOSFETs 1008. The password stored in the array of MOSFETs 1008is read by password reader and setter 1004. If the password entered bythe user matches the stored password, then the authenticator 1014 grantsaccess by the user to the data 1016.

System 1000 may be implemented in software, hardware, firmware or acombination thereof. When software is used, the operations performed by[system 1000] may be implemented in program code configured to run onhardware, such as a processor unit. When firmware is used, theoperations performed by [system 1000] may be implemented in program codeand data and stored in persistent memory to run on a processor unit.When hardware is employed, the hardware may include circuits thatoperate to perform the operations in system 1000.

In the illustrative examples, the hardware may take a form selected fromat least one of a circuit system, an integrated circuit, an applicationspecific integrated circuit (ASIC), a programmable logic device, or someother suitable type of hardware configured to perform a number ofoperations. With a programmable logic device, the device may beconfigured to perform the number of operations. The device may bereconfigured at a later time or may be permanently configured to performthe number of operations. Programmable logic devices include, forexample, a programmable logic array, a programmable array logic, a fieldprogrammable logic array, a field programmable gate array, and othersuitable hardware devices. Additionally, the processes may beimplemented in organic components integrated with inorganic componentsand may be comprised entirely of organic components excluding a humanbeing. For example, the processes may be implemented as circuits inorganic semiconductors.

In an embodiment, system 1000 is a physical hardware system and includesone or more data processing systems. When more than one data processingsystem is present in system 1000, those data processing systems are incommunication with each other using a communications medium. Thecommunications medium may be a network. The data processing systems maybe selected from at least one of a computer, a server computer, atablet, or some other suitable data processing system.

The illustration of system 1000 in FIG. 10 is not meant to implyphysical or architectural limitations to the manner in which anillustrative embodiment may be implemented. Other components in additionto or in place of the ones illustrated may be used. Some components maybe unnecessary. Also, the blocks are presented to illustrate somefunctional components. One or more of these blocks may be combined,divided, or combined and divided into different blocks when implementedin an illustrative embodiment.

FIG. 11 is a flowchart of an exemplary method 1100 for setting anon-chip password in accordance an illustrative embodiment. The processesin FIG. 11 can be implemented in hardware, software, or both. Whenimplemented in software, the processes can take the form of program codethat is run by one of more processor units located in one or morehardware devices in one or more computer systems. For example, theseprocesses can be implemented in password reader and setter 1004 runningon system 1000 in FIG. 10. Method 1100 begins by determining a desiredlogic state for a FET (step 1102). In an embodiment, the desired logicstate is determined based on user input. Next, a current logic state fora FET is determined (step 1104). In an embodiment, the current logicstate for the FET is determined by comparing the normal and reversecurrents across the source and drain of the FET. If the normal andreverse currents are equal, then the logic state is a first logic state(e.g., logic state “0”). If the normal and reverse currents are notequal, then the logic state is a second logic state (e.g., logic state“1”). Next, the method 1100 determines if the desired logic state isdifferent from the current logic state (step 1106). If the desired logicstate is different from the current state, then one of the source or thedrain is subjected to hot-carrier stress in order to introduce defectsinto the corresponding source or drain (step 1108). If the desired logicstate of the FET is not different from the current state, then the logicstate of the FET is left unchanged (step 1110).

FIG. 12 is a flowchart of an exemplary method 1200 for reading the logicstate of a FET in accordance with an illustrative embodiment. Theprocesses in FIG. 12 can be implemented in hardware, software, or both.When implemented in software, the processes can take the form of programcode that is run by one of more processor units located in one or morehardware devices in one or more computer systems. For example, theseprocesses can be implemented in password reader and setter 1004 runningon system 1000 in FIG. 10. The method 1200 begins by measuring thecurrent from the source to the drain (step 1202). Next, the current fromthe drain to the source is measured (step 1204). Next, the method 1200determines if the normal current and the reverse current are equal (step1206). If the two currents are equal, then the method 1200 determinesthat the device (e.g., MOSFET) is in a logic state “0” (step 1208). Ifthe two currents are not equal, then the method 1200 determines that thedevice is in a logic state “1” (step 1210). In some embodiments, thedetermination of whether the normal current and the reverse current arethe same is made by reference to a threshold. If the difference betweenthe two currents exceeds a threshold, then the normal current and thereverse current are deemed different and if the difference between thetwo currents does not exceed the threshold, then the normal current andthe reverse current are deemed to be the same.

In one illustrative example, one or more technical solutions are presentthat overcome a technical problem with repeatedly programming an on-chippassword. As a result, one or more technical solutions may provide atechnical effect of allowing an on-chip password to be programmed andre-programmed multiple times. In an embodiment, hot-carrier stress isused to change the symmetry of a MOSFET by introducing defects into oneof the source and the drain. If the amount of defects (or lack thereof)are approximately the same on the source and the drain, the MOSFET issymmetric and the normal and reverse currents measured across the sourceand the drain are approximately equal. If the amount of defects on oneof the source or the drain are more than on the other side, then theMOSFET is asymmetric and the normal and reverse currents measured acrossthe source and the drain are different. This state of the MOSFET ispersistent until reprogrammed. The state of the MOSFET may bereprogrammed multiple times.

Although described primarily with a symmetric state of the MOSFETrepresenting a logic state “0” and an asymmetric state of the MOSFET asrepresenting a logic state “1”, in other embodiments, the symmetricstate corresponds to a logic state “1” and the asymmetric statecorresponds to the logic state “0”.

The flowcharts and block diagrams in the different depicted embodimentsillustrate the architecture, functionality, and operation of somepossible implementations of apparatuses and methods in an illustrativeembodiment. In this regard, each block in the flowcharts or blockdiagrams may represent at least one of a module, a segment, a function,or a portion of an operation or step. For example, one or more of theblocks may be implemented as program code, hardware, or a combination ofthe program code and hardware. When implemented in hardware, thehardware may, for example, take the form of integrated circuits that aremanufactured or configured to perform one or more operations in theflowcharts or block diagrams. When implemented as a combination ofprogram code and hardware, the implementation may take the form offirmware. Each block in the flowcharts or the block diagrams may beimplemented using special purpose hardware systems that perform thedifferent operations or combinations of special purpose hardware andprogram code run by the special purpose hardware.

In some alternative implementations of an illustrative embodiment, thefunction or functions noted in the blocks may occur out of the ordernoted in the figures. For example, in some cases, two blocks shown insuccession may be performed substantially concurrently, or the blocksmay sometimes be performed in the reverse order, depending upon thefunctionality involved. Also, other blocks may be added in addition tothe illustrated blocks in a flowchart or block diagram.

Turning now to FIG. 13, a block diagram of a data processing system isdepicted in accordance with an illustrative embodiment. In anembodiment, data processing system 1300 is implemented as on-chippassword system 1000 depicted in FIG. 10. In this illustrative example,data processing system 1300 includes communications framework 1302,which provides communications between processor unit 1304, memory 1306,persistent storage 1308, communications unit 1310, input/output (I/O)unit 1312, and display 1314. In this example, communications framework1302 may take the form of a bus system.

Processor unit 1304 serves to execute instructions for software that maybe loaded into memory 1306. Processor unit 1304 may be a number ofprocessors, a multi-processor core, or some other type of processor,depending on the particular implementation.

Memory 1306 and persistent storage 1308 are examples of storage devices1316. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, at leastone of data, program code in functional form, or other suitableinformation either on a temporary basis, a permanent basis, or both on atemporary basis and a permanent basis. Storage devices 1316 may also bereferred to as computer-readable storage devices in these illustrativeexamples. Memory 1306, in these examples, may be, for example, arandom-access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 1308 may take various forms,depending on the particular implementation.

For example, persistent storage 1308 may contain one or more componentsor devices. For example, persistent storage 1308 may be a hard drive, asolid-state drive (SSD), a flash memory, a rewritable optical disk, arewritable magnetic tape, or some combination of the above. The mediaused by persistent storage 1308 also may be removable. For example, aremovable hard drive may be used for persistent storage 1308.

Communications unit 1310, in these illustrative examples, provides forcommunications with other data processing systems or devices. In theseillustrative examples, communications unit 1310 is a network interfacecard.

Input/output unit 1312 allows for input and output of data with otherdevices that may be connected to data processing system 1300. Forexample, input/output unit 1312 may provide a connection for user inputthrough at least one of a keyboard, a mouse, or some other suitableinput device. Further, input/output unit 1312 may send output to aprinter. Display 1314 provides a mechanism to display information to auser.

Instructions for at least one of the operating system, applications, orprograms may be located in storage devices 1316, which are incommunication with processor unit 1304 through communications framework1302. The processes of the different embodiments may be performed byprocessor unit 1304 using computer-implemented instructions, which maybe located in a memory, such as memory 1306.

These instructions are referred to as program code, computer usableprogram code, or computer-readable program code that may be read andexecuted by a processor in processor unit 1304. The program code in thedifferent embodiments may be embodied on different physical orcomputer-readable storage media, such as memory 1306 or persistentstorage 1308.

A computer program product 1322 includes computer-readable media 1320.Program code 1318 is located in a functional form on computer-readablemedia 1320 that is selectively removable and may be loaded onto ortransferred to data processing system 1300 for execution by processorunit 1304. Program code 1318 and computer-readable storage media 1324form computer-readable media 1320 in these illustrative examples. In theillustrative example, computer-readable media 1320 is computer-readablestorage media 1324.

In these illustrative examples, computer-readable storage media 1324 isa physical or tangible storage device used to store program code 1318rather than a medium that propagates or transmits program code 1318.

Alternatively, program code 1318 may be transferred to data processingsystem 1300 using a computer-readable signal media. Thecomputer-readable signal media may be, for example, a propagated datasignal containing program code 1318. For example, the computer-readablesignal media may be at least one of an electromagnetic signal, anoptical signal, or any other suitable type of signal. These signals maybe transmitted over at least one of communications links, such aswireless communications links, optical fiber cable, coaxial cable, awire, or any other suitable type of communications link.

The different components illustrated for data processing system 1300 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 1300. Other components shown in FIG. 13 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code 1318.

Thus, illustrative embodiments of the present invention provide anon-chip multiple programmable password.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiment. The terminology used herein was chosen to best explain theprinciples of the embodiment, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed here.

What is claimed is:
 1. A method for programming an on-chip password, themethod comprising: determining a desired logic state for a field-effecttransistor according to the on-chip password, the desired logic statebeing one of a first logic state and a second logic state; subjectingone of a source and a drain of the field-effect transistor tohot-carrier stress according to the desired logic state to produce oneof a symmetric state of the field-effect transistor and an asymmetricstate of the field-effect transistor, the symmetric state correspondingto one of the first and second logic states, the asymmetric statecorresponding to the other one of the first and second logic states; andreprogramming the on-chip password by: measuring a first channel currentfrom the source to the drain; measuring a second channel current fromthe drain to the source; determining a difference between the first andsecond channel current; determining a current logic state of thefield-effect transistor according to the difference; and subjecting aselected one of the source and the drain of the field-effect transistorto hot-carrier stress according to the current logic state and a newdesired logic state, the selected one determined according to thecurrent logic state.
 2. The method of claim 1, wherein the subjectingone of the source and the drain to hot-carrier stress produces defectsin the one of the source and the drain that are localized to the one ofthe source and the drain.
 3. The method of claim 2, wherein the defectscomprise interface traps.
 4. The method of claim 1, wherein thefield-effect transistor comprises the symmetric state when thedifference is less than a threshold and wherein the field-effecttransistor comprises the asymmetric state when the difference is greaterthan the threshold.
 5. The method of claim 1, further comprising furtherreprogramming the on-chip password by: measuring a first devicecharacteristic in a normal mode; measuring a second devicecharacteristic in a reverse mode; determining a difference between thefirst and second channel current; determining a current logic state ofthe field-effect transistor according to the difference; and subjectinga selected one of the source and the drain of the field-effecttransistor to hot-carrier stress according to the current logic stateand a new desired logic state, the selected one determined according tothe current logic state.
 6. The method of claim 5, wherein the firstdevice characteristic comprises one of a threshold voltage measured in anormal mode, a subthreshold slope measured in a normal mode, atransconductance measured in a normal mode, and a resistance measured ina normal mode and wherein the second device characteristic comprises oneof a threshold voltage measured in a reverse mode, a subthreshold slopemeasured in a reverse mode, a transconductance measured in a reversemode, and a resistance measured in a reverse mode.
 7. The method ofclaim 1, further comprising an array of field-effect transistors.
 8. Themethod of claim 1, wherein the field-effect transistor comprises ametal-oxide semiconductor field-effect transistor (MOSFET).
 9. Themethod of claim 1, wherein the field-effect transistor comprises acomplementary metal-oxide-semiconductor (CMOS).
 10. A computer forprogramming an on-chip password, comprising: a processor; and anon-transitory computer readable storage medium storing program codewhich, when executed by the processor, performs a computer-implementedmethod of using the computer to program an on-chip password, the programcode comprising: program code for determining a desired logic state fora field-effect transistor according to the on-chip password, the desiredlogic state being one of a first logic state and a second logic state;and program code for subjecting one of a source and a drain of thefield-effect transistor to hot-carrier stress according to the desiredlogic state to produce one of a symmetric state of the field-effecttransistor and an asymmetric state of the field-effect transistor, thesymmetric state corresponding to one of the first and second logicstates, the asymmetric state corresponding to the other one of the firstand second logic states; and program code for reprogramming the on-chippassword by: measuring a first channel current from the source to thedrain; measuring a second channel current from the drain to the source;determining a difference between the first and second channel current;determining a current logic state of the field-effect transistoraccording to the difference; and subjecting a selected one of the sourceand the drain of the field-effect transistor to hot-carrier stressaccording to the current logic state and a new desired logic state, theselected one determined according to the current logic state.
 11. Thecomputer of claim 10, wherein the subjecting one of the source and thedrain to hot-carrier stress produces defects in the one of the sourceand the drain that are localized to the one of the source and the drain.12. The computer of claim 11, wherein the defects comprise interfacetraps.
 13. The computer of claim 10, wherein the field-effect transistorcomprises the symmetric state when the difference is less than athreshold and wherein the field-effect transistor comprises theasymmetric state when the difference is greater than the threshold. 14.The computer of claim 10, further comprising program code for furtherreprogramming the on-chip password by: measuring a first devicecharacteristic in a normal mode; measuring a second devicecharacteristic in a reverse mode; determining a difference between thefirst and second channel current; determining a current logic state ofthe field-effect transistor according to the difference; and subjectinga selected one of the source and the drain of the field-effecttransistor to hot-carrier stress according to the current logic stateand a new desired logic state, the selected one determined according tothe current logic state.
 15. The computer of claim 14, wherein the firstdevice characteristic comprises one of a threshold voltage measured in anormal mode, a subthreshold slope measured in a normal mode, atransconductance measured in a normal mode, and a resistance measured ina normal mode and wherein the second device characteristic comprises oneof a threshold voltage measured in a reverse mode, a subthreshold slopemeasured in a reverse mode, a transconductance measured in a reversemode, and a resistance measured in a reverse mode.
 16. A semiconductordevice for on-chip password programming, comprising: a field-effecttransistor; and a hot-carrier stress application unit coupled to thefield-effect transistor and configured to subject one of a source and adrain of the field-effect transistor to hot-carrier stress according tothe desired logic state to produce one of a symmetric state of thefield-effect transistor and an asymmetric state of the field-effecttransistor, the symmetric state corresponding to one of the first andsecond logic states, the asymmetric state corresponding to the other oneof the first and second logic states, wherein the field-effecttransistor is further configured to be reprogrammed by measuring a firstchannel current from the source to the drain, measuring a second channelcurrent from the drain to the source, determining a difference betweenthe first and second channel current, determining a current logic stateof the field-effect transistor according to the difference, andsubjecting a selected one of the source and the drain of thefield-effect transistor to hot-carrier stress according to the currentlogic state and a new desired logic state, the selected one determinedaccording to the current logic state.
 17. The semiconductor device ofclaim 16, wherein the field-effect transistor comprises a complementarymetal-oxide-semiconductor (CMOS).
 18. The semiconductor device of claim16, wherein a defect in the one of the source and the drain is producedwhen the one of the source and the drain is subjected to hot-carrierstress, wherein the defect is localized to the one of the source and thedrain.
 19. The semiconductor device of claim 16, wherein thefield-effect transistor comprises a metal-oxide semiconductorfield-effect transistor (MOSFET).
 20. The semiconductor device of claim16, wherein the field-effect transistor comprises the symmetric statewhen the difference is less than a threshold and wherein thefield-effect transistor comprises the asymmetric state when thedifference is greater than the threshold.